home *** CD-ROM | disk | FTP | other *** search
/ Merciful 4 / Merciful - Disc 4.iso / rexx / process.pprx < prev    next >
Text File  |  1996-11-01  |  3KB  |  137 lines

  1. /* Personal Paint Amiga Rexx script - Copyright © 1995-1996 Cloanto Italia srl */
  2.  
  3. /* $VER: Process.pprx 2.1 */
  4.  
  5. /** ENG
  6.   This script applies an image processing filter to all image files
  7.   (pictures or brushes) in the selected directory. The original files
  8.   are overwritten.
  9. */
  10.  
  11. /** DEU
  12.   Dieses Skript automatisiert die Anwendung eines Bildverarbeitungsfilters
  13.   auf alle Grafikdateien (Bilder oder Brushes) im ausgewählten Verzeichnis.
  14.   Die ursprünglichen Dateien werden  dabei überschrieben.
  15. */
  16.  
  17. IF ARG(1, EXISTS) THEN
  18.     PARSE ARG PPPORT
  19. ELSE
  20.     PPPORT = 'PPAINT'
  21.  
  22. IF ~SHOW('P', PPPORT) THEN DO
  23.     IF EXISTS('PPaint:PPaint') THEN DO
  24.         ADDRESS COMMAND 'Run >NIL: PPaint:PPaint'
  25.         DO 30 WHILE ~SHOW('P',PPPORT)
  26.              ADDRESS COMMAND 'Wait >NIL: 1 SEC'
  27.         END
  28.     END
  29.     ELSE DO
  30.         SAY "Personal Paint could not be loaded."
  31.         EXIT 10
  32.     END
  33. END
  34.  
  35. IF ~SHOW('P', PPPORT) THEN DO
  36.     SAY 'Personal Paint Rexx port could not be opened'
  37.     EXIT 10
  38. END
  39.  
  40. ADDRESS VALUE PPPORT
  41. OPTIONS RESULTS
  42. OPTIONS FAILAT 10000
  43.  
  44. Get 'LANG'
  45. IF RESULT = 1 THEN DO        /* Deutsch */
  46.     txt_req_selflt    = 'Filter auswählen'
  47.     txt_req_seldir    = 'Verzeichnis auswählen'
  48.     txt_err_oldclient = 'Für dieses Skript_ist eine neuere Version_von Personal Paint erforderlich'
  49. END
  50. ELSE IF RESULT = 2 THEN DO        /* Italiano */
  51.     txt_req_selflt    = 'Selezionare filtro'
  52.     txt_req_seldir    = 'Selezionare percorso'
  53.     txt_err_oldclient = 'Questa procedura richiede_una versione più recente_di Personal Paint'
  54. END
  55. ELSE DO        /* English */
  56.     txt_req_selflt    = 'Select a Filter'
  57.     txt_req_seldir    = 'Select a Directory'
  58.     txt_err_oldclient = 'This script requires a newer_version of Personal Paint'
  59. END
  60.  
  61. Version 'REXX'
  62. rxver = RESULT
  63. IF rxver < 7 THEN DO
  64.     RequestNotify 'PROMPT "'txt_err_oldclient'"'
  65.     EXIT 10
  66. END
  67.  
  68.  
  69. filtname = 'Randomize Oblique'
  70.  
  71.  
  72. LockGUI
  73. IF rxver < 5 THEN
  74.     FreeEnvironment 'QUERY'
  75. ELSE
  76.     RequestFilter '"'txt_req_selflt'" "'filtname'"'
  77. IF RC = 0 THEN DO
  78.     IF rxver >= 5 THEN
  79.         PARSE VALUE RESULT WITH '"' filtname '"' dithertype .
  80.  
  81.     RequestPath '"'txt_req_seldir'"'
  82.     IF RC = 0 THEN DO
  83.         tmpfname = 'T:pprx_temp.'PRAGMA('ID')
  84.         ADDRESS COMMAND 'List >'tmpfname' 'RESULT' NOHEAD PAT=~(#?.info) LFORMAT="*"%s%s*"" FILES'
  85.         IF OPEN('listfile', tmpfname, 'R') THEN DO
  86.             IF rxver < 5 THEN
  87.                 DeleteFrames 'ALL FORCE'
  88.             DO FOREVER
  89.                 curfname = READLN('listfile')
  90.                 IF EOF('listfile') THEN BREAK
  91.                 IF rxver < 5 THEN DO
  92.                     LoadImage curfname 'FORCE QUIET'
  93.                     IF RC = 0 THEN DO
  94.                         LoadBrush curfname 'FORCE QUIET'
  95.                         IF RC = 0 THEN DO
  96.                             GetBrushAttributes 'WIDTH'
  97.                             xmax = RESULT - 1
  98.                             GetBrushAttributes 'HEIGHT'
  99.                             ymax = RESULT - 1
  100.                             GetBrushAttributes 'HANDLEX'
  101.                             hanx = RESULT
  102.                             GetBrushAttributes 'HANDLEY'
  103.                             hany = RESULT
  104.                             Process '"'filtname'"' 0 0 xmax ymax
  105.                             IF RC = 0 THEN DO
  106.                                 DefineBrush 0 0 xmax ymax
  107.                                 IF RC = 0 THEN DO
  108.                                     SetBrushAttributes 'HANDLEX' hanx 'HANDLEY' hany
  109.                                     SaveBrush curfname 'FORCE'
  110.                                 END
  111.                             END
  112.                             ELSE IF RC = 5 THEN    /* user break */
  113.                                 LEAVE
  114.                         END
  115.                     END
  116.                 END
  117.                 ELSE DO
  118.                     LoadBrush curfname 'FORCE QUIET'
  119.                     IF RC = 0 THEN DO
  120.                         Process 'BRUSH "'filtname'" 'dithertype
  121.                         IF RC = 0 THEN
  122.                             SaveBrush curfname 'FORCE'
  123.                         ELSE IF RC = 5 THEN    /* user break */
  124.                             LEAVE
  125.                     END
  126.                 END
  127.             END
  128.             FreeBrush 'FORCE'
  129.             IF rxver < 5 THEN
  130.                 ClearImage
  131.             CALL CLOSE('listfile')
  132.         END
  133.         ADDRESS COMMAND 'Delete >NIL: 'tmpfname
  134.     END
  135. END
  136. UnlockGUI
  137.